package com.yuandian.api.management.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.time.LocalDateTime;


/**
 * Agent状态信息表-实体
 * @author zfsn
 * @date 2023-4-14
 */
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "Agent状态信息表", description = "")
@TableName("conf_agent_status_info")
public class ConfAgentStatusInfo extends Model<ConfAgentStatusInfo> {

	/**
	 *
	 */
	@ApiModelProperty(value = "表自增id", notes = "")
	@TableId(type = IdType.AUTO)
	private Integer id;

	/**
	 *
	 */
	@ApiModelProperty(value = "探针IP", notes = "")
	private String probeIp;

	/**
	 *
	 */
	@ApiModelProperty(value = "别名", notes = "")
	private String aliasName;

	/**
	 * IP
	 */
	@ApiModelProperty(value = "Agent", notes = "IP")
	private String agentIp;

	/**
	 *
	 */
	@ApiModelProperty(value = "主机名", notes = "")
	private String hostName;

	/**
	 *
	 */
	@ApiModelProperty(value = "Agent版本", notes = "")
	private String version;

	/**
	 *
	 */
	@ApiModelProperty(value = "最后启动时间", notes = "")
	private LocalDateTime lastLaunchTime;

	/**
	 *
	 */
	@ApiModelProperty(value = "最后更新时间", notes = "")
	private LocalDateTime lastUpdateTime;

	/**
	 * 年月日时分
	 */
	@ApiModelProperty(value = "拿“最后更新时间”格式化202006040936", notes = "年月日时分")
	private String formatTime;

	/**
	 *
	 */
	@ApiModelProperty(value = "抓包口个数", notes = "")
	private Integer ethCount;

	/**
	 *
	 */
	@ApiModelProperty(value = "抓包口", notes = "")
	private String capturePort;

	/**
	 *
	 */
	@ApiModelProperty(value = "抓包口流量大小(速率bps)", notes = "")
	private Integer captureSpeed;

	/**
	 *
	 */
	@ApiModelProperty(value = "分钟抓包数", notes = "")
	private Integer minuteCaptureCount;

	/**
	 *
	 */
	@ApiModelProperty(value = "分钟抓包丢包数", notes = "")
	private Integer minuteCaptureLostCount;

	/**
	 *
	 */
	@ApiModelProperty(value = "分钟抓包队列丢包数", notes = "")
	private Integer minuteQueueLostCount;

	/**
	 *
	 */
	@ApiModelProperty(value = "抓包总数", notes = "")
	private String captureCount;

	/**
	 *
	 */
	@ApiModelProperty(value = "抓包丢包总数", notes = "")
	private String captureLostCount;

	/**
	 *
	 */
	@ApiModelProperty(value = "抓包队列丢包总数", notes = "")
	private String queueLostCount;

	/**
	 *
	 */
	@ApiModelProperty(value = "发送速率（判断代理占用带宽情况）", notes = "")
	private Integer sendSpeed;

	/**
	 *
	 */
	@ApiModelProperty(value = "发送数据压缩比", notes = "")
	private Integer compressRate;

	/**
	 *
	 */
	@ApiModelProperty(value = "cpu使用率", notes = "")
	private Integer cpuRate;

	/**
	 *
	 */
	@ApiModelProperty(value = "内存使用率", notes = "")
	private Integer memoryRate;

	/**
	 *
	 */
	@ApiModelProperty(value = "磁盘使用率", notes = "")
	private Integer diskRate;

	/**
	 *
	 */
	@ApiModelProperty(value = "磁盘各个分区详细", notes = "")
	private String allDiskInfo;

	/**
	 *
	 */
	@ApiModelProperty(value = "是否重启：0正常；1重启", notes = "")
	private Integer rebootFlag;

	/**
	 *
	 */
	@ApiModelProperty(value = "Agent状态：0正常；1异常；2断采", notes = "")
	private Integer agentStatus;

	/**
	 * 5磁盘使用率，6分钟抓包(流量)为0
	 */
	@ApiModelProperty(value = "异常细分状态：1重启；2丢包率；3cpu使用率；4内存使用率", notes = "5磁盘使用率，6分钟抓包(流量)为0")
	private Integer wrongStatus;

	/**
	 * 0.正常； 1.不参与
	 */
	@ApiModelProperty(value = "断采是否参与top排名：", notes = "0.正常； 1.不参与")
	private Integer collectTopStatus;

	/**
	 * 0.正常； 1.不参与
	 */
	@ApiModelProperty(value = "异常是否参与top排名：", notes = "0.正常； 1.不参与")
	private Integer wrongTopStatus;

	/**
	 *
	 */
	@ApiModelProperty(value = "不监控的磁盘分区", notes = "")
	private String removeDiskPartition;

	/**
	 *
	 */
	@ApiModelProperty(value = "agent阀值字符串", notes = "")
	private String agentThreshold;

	/**
	 * 默认当前时间
	 */
	@ApiModelProperty(value = "创建时间,", notes = "默认当前时间")
	private LocalDateTime createTime;

	/**
	 * 默认admin
	 */
	@ApiModelProperty(value = "修改者账号,", notes = "默认admin")
	private String updateBy;

	/**
	 * 默认当前时间
	 */
	@ApiModelProperty(value = "修改时间,", notes = "默认当前时间")
	private LocalDateTime updateTime;

	/**
	 * 0.正常； 1.删除
	 */
	@ApiModelProperty(value = "状态：", notes = "0.正常； 1.删除")
	private Integer status;

	/**
	 *
	 */
	@ApiModelProperty(value = "备注", notes = "")
	private String remarks;

	/**
	 * 断采个数
	 */
	private Integer breakCollectCount;

	/**
	 * 异常个数
	 */
	private Integer wrongCount;

	/**
	 * 正常个数
	 */
	private Integer normalCount;

	/**
	 * 丢包率=minuteCaptureLostCount分钟抓包丢包数/minuteCaptureCount分钟抓包数
	 */
	private Double minuteCaptureLostRate;

	/**
	 * 重启次数
	 * 统计rebootFlag=1
	 */
	private Integer rebootCount;

	/**
	 * 前端展示序号
	 */
	private String key;

	/**
	 * 正常的agent总数
	 */
	@TableField(exist = false)
	private Integer agentIpCount;




}